package com.ruoyi.business.domain;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 即时通讯用户对象 im_user
 * 
 * @author ruoyi
 * @date 2025-07-11
 */
public class ImUser extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 自增主键 */
    private Long id;

    /** 电话 */
    @Excel(name = "电话")
    private String mobile;

    /** 账号 */
    @Excel(name = "账号")
    private String account;

    /** 密码 */
    @Excel(name = "密码")
    private String password;

    /** 昵称 */
    @Excel(name = "昵称")
    private String userName;

    /** 真实姓名 */
    @Excel(name = "真实姓名")
    private String realName;

    /** 微信号 */
    @Excel(name = "微信号")
    private String chatNumber;

    /** 身份证 */
    @Excel(name = "身份证")
    private String idCard;

    /** 头像 */
    @Excel(name = "头像")
    private String avatar;

    /** 朋友圈背景图 */
    @Excel(name = "朋友圈背景图")
    private String pyqBgImg;

    /** 聊天背景图 */
    @Excel(name = "聊天背景图")
    private String chatBgImg;

    /** 个性签名 */
    @Excel(name = "个性签名")
    private String signature;

    /** 性别   0男  1女 */
    @Excel(name = "性别   0男  1女")
    private Long sex;

    /** 地址 */
    @Excel(name = "地址")
    private String address;

    /** 邮件 */
    @Excel(name = "邮件")
    private String email;

    /** 最后一次登录时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "最后一次登录时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date lastLoginTime;

    /** 状态  0可用  1禁用 */
    @Excel(name = "状态  0可用  1禁用")
    private Long activeStatus;

    /** 删除标志  1删除  0未删除 */
    private Integer delFlag;

    /** 登录的设备ID,可用于推送的cid */
    @Excel(name = "登录的设备ID,可用于推送的cid")
    private String userDeviceId;

    /** 1系统管理员 0普通用户 */
    @Excel(name = "1系统管理员 0普通用户")
    private Long level;

    /** 是否允许通过 id 搜索到我 1 是 2 否 */
    @Excel(name = "是否允许通过 id 搜索到我 1 是 2 否")
    private Long addMeId;

    /** 是否允许加我为好友 1 是 2 否 */
    @Excel(name = "是否允许加我为好友 1 是 2 否")
    private Long addMe;

    /** 账户余额 */
    @Excel(name = "账户余额")
    private BigDecimal accountBalance;

    /** 冻结余额 */
    @Excel(name = "冻结余额")
    private BigDecimal accountFrozen;

    /** 交易密码 */
    @Excel(name = "交易密码")
    private String tradePwd;

    /** 提现冻结金额 */
    @Excel(name = "提现冻结金额")
    private BigDecimal tixianFrozen;

    /** 支付宝账户 */
    @Excel(name = "支付宝账户")
    private String alipayAccount;

    /** 支付宝名字 */
    @Excel(name = "支付宝名字")
    private String alipayName;

    /** 首字母 */
    @Excel(name = "首字母")
    private String pinyinChar;

    /** 密保问题 */
    @Excel(name = "密保问题")
    private String mibaoWenti;

    /** 密保答案 */
    @Excel(name = "密保答案")
    private String mibaoDaan;

    /** 身份证正面 */
    @Excel(name = "身份证正面")
    private String idCardZheng;

    /** 身份证反面 */
    @Excel(name = "身份证反面")
    private String idCardFan;

    /** 实名审核 1=已审核 2=已拒绝 3=待审核 */
    @Excel(name = "实名审核 1=已审核 2=已拒绝 3=待审核")
    private Long examineStatus;

    /** 积分 */
    @Excel(name = "积分")
    private BigDecimal integral;

    /** 邀请码 */
    @Excel(name = "邀请码")
    private String invitationCode;

    /** 被邀请码 */
    @Excel(name = "被邀请码")
    private String otherInvitationCode;

    /** 是否已推送审核通知 1是 2否 */
    @Excel(name = "是否已推送审核通知 1是 2否")
    private Long notice;

    /** $column.columnComment */
    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
    private String deviceStr;

    /** 实名视频信息 */
    @Excel(name = "实名视频信息")
    private String idCardVideo;

    /** 邀请码是否启用 1启用 2禁用 */
    @Excel(name = "邀请码是否启用 1启用 2禁用")
    private Long invitationCodeFlag;

    /** 用户类型：内部  真实 */
    @Excel(name = "用户类型：内部  真实")
    private String userFlag;

    /** 最后一次登录ip */
    @Excel(name = "最后一次登录ip")
    private String ip;

    public void setId(Long id) 
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }

    public void setMobile(String mobile) 
    {
        this.mobile = mobile;
    }

    public String getMobile() 
    {
        return mobile;
    }

    public void setAccount(String account) 
    {
        this.account = account;
    }

    public String getAccount() 
    {
        return account;
    }

    public void setPassword(String password) 
    {
        this.password = password;
    }

    public String getPassword() 
    {
        return password;
    }

    public void setUserName(String userName) 
    {
        this.userName = userName;
    }

    public String getUserName() 
    {
        return userName;
    }

    public void setRealName(String realName) 
    {
        this.realName = realName;
    }

    public String getRealName() 
    {
        return realName;
    }

    public void setChatNumber(String chatNumber) 
    {
        this.chatNumber = chatNumber;
    }

    public String getChatNumber() 
    {
        return chatNumber;
    }

    public void setIdCard(String idCard) 
    {
        this.idCard = idCard;
    }

    public String getIdCard() 
    {
        return idCard;
    }

    public void setAvatar(String avatar) 
    {
        this.avatar = avatar;
    }

    public String getAvatar() 
    {
        return avatar;
    }

    public void setPyqBgImg(String pyqBgImg) 
    {
        this.pyqBgImg = pyqBgImg;
    }

    public String getPyqBgImg() 
    {
        return pyqBgImg;
    }

    public void setChatBgImg(String chatBgImg) 
    {
        this.chatBgImg = chatBgImg;
    }

    public String getChatBgImg() 
    {
        return chatBgImg;
    }

    public void setSignature(String signature) 
    {
        this.signature = signature;
    }

    public String getSignature() 
    {
        return signature;
    }

    public void setSex(Long sex) 
    {
        this.sex = sex;
    }

    public Long getSex() 
    {
        return sex;
    }

    public void setAddress(String address) 
    {
        this.address = address;
    }

    public String getAddress() 
    {
        return address;
    }

    public void setEmail(String email) 
    {
        this.email = email;
    }

    public String getEmail() 
    {
        return email;
    }

    public void setLastLoginTime(Date lastLoginTime) 
    {
        this.lastLoginTime = lastLoginTime;
    }

    public Date getLastLoginTime() 
    {
        return lastLoginTime;
    }

    public void setActiveStatus(Long activeStatus) 
    {
        this.activeStatus = activeStatus;
    }

    public Long getActiveStatus() 
    {
        return activeStatus;
    }

    public void setDelFlag(Integer delFlag) 
    {
        this.delFlag = delFlag;
    }

    public Integer getDelFlag() 
    {
        return delFlag;
    }

    public void setUserDeviceId(String userDeviceId) 
    {
        this.userDeviceId = userDeviceId;
    }

    public String getUserDeviceId() 
    {
        return userDeviceId;
    }

    public void setLevel(Long level) 
    {
        this.level = level;
    }

    public Long getLevel() 
    {
        return level;
    }

    public void setAddMeId(Long addMeId) 
    {
        this.addMeId = addMeId;
    }

    public Long getAddMeId() 
    {
        return addMeId;
    }

    public void setAddMe(Long addMe) 
    {
        this.addMe = addMe;
    }

    public Long getAddMe() 
    {
        return addMe;
    }

    public void setAccountBalance(BigDecimal accountBalance) 
    {
        this.accountBalance = accountBalance;
    }

    public BigDecimal getAccountBalance() 
    {
        return accountBalance;
    }

    public void setAccountFrozen(BigDecimal accountFrozen) 
    {
        this.accountFrozen = accountFrozen;
    }

    public BigDecimal getAccountFrozen() 
    {
        return accountFrozen;
    }

    public void setTradePwd(String tradePwd) 
    {
        this.tradePwd = tradePwd;
    }

    public String getTradePwd() 
    {
        return tradePwd;
    }

    public void setTixianFrozen(BigDecimal tixianFrozen) 
    {
        this.tixianFrozen = tixianFrozen;
    }

    public BigDecimal getTixianFrozen() 
    {
        return tixianFrozen;
    }

    public void setAlipayAccount(String alipayAccount) 
    {
        this.alipayAccount = alipayAccount;
    }

    public String getAlipayAccount() 
    {
        return alipayAccount;
    }

    public void setAlipayName(String alipayName) 
    {
        this.alipayName = alipayName;
    }

    public String getAlipayName() 
    {
        return alipayName;
    }

    public void setPinyinChar(String pinyinChar) 
    {
        this.pinyinChar = pinyinChar;
    }

    public String getPinyinChar() 
    {
        return pinyinChar;
    }

    public void setMibaoWenti(String mibaoWenti) 
    {
        this.mibaoWenti = mibaoWenti;
    }

    public String getMibaoWenti() 
    {
        return mibaoWenti;
    }

    public void setMibaoDaan(String mibaoDaan) 
    {
        this.mibaoDaan = mibaoDaan;
    }

    public String getMibaoDaan() 
    {
        return mibaoDaan;
    }

    public void setIdCardZheng(String idCardZheng) 
    {
        this.idCardZheng = idCardZheng;
    }

    public String getIdCardZheng() 
    {
        return idCardZheng;
    }

    public void setIdCardFan(String idCardFan) 
    {
        this.idCardFan = idCardFan;
    }

    public String getIdCardFan() 
    {
        return idCardFan;
    }

    public void setExamineStatus(Long examineStatus) 
    {
        this.examineStatus = examineStatus;
    }

    public Long getExamineStatus() 
    {
        return examineStatus;
    }

    public void setIntegral(BigDecimal integral) 
    {
        this.integral = integral;
    }

    public BigDecimal getIntegral() 
    {
        return integral;
    }

    public void setInvitationCode(String invitationCode) 
    {
        this.invitationCode = invitationCode;
    }

    public String getInvitationCode() 
    {
        return invitationCode;
    }

    public void setOtherInvitationCode(String otherInvitationCode) 
    {
        this.otherInvitationCode = otherInvitationCode;
    }

    public String getOtherInvitationCode() 
    {
        return otherInvitationCode;
    }

    public void setNotice(Long notice) 
    {
        this.notice = notice;
    }

    public Long getNotice() 
    {
        return notice;
    }

    public void setDeviceStr(String deviceStr) 
    {
        this.deviceStr = deviceStr;
    }

    public String getDeviceStr() 
    {
        return deviceStr;
    }

    public void setIdCardVideo(String idCardVideo) 
    {
        this.idCardVideo = idCardVideo;
    }

    public String getIdCardVideo() 
    {
        return idCardVideo;
    }

    public void setInvitationCodeFlag(Long invitationCodeFlag) 
    {
        this.invitationCodeFlag = invitationCodeFlag;
    }

    public Long getInvitationCodeFlag() 
    {
        return invitationCodeFlag;
    }

    public void setUserFlag(String userFlag) 
    {
        this.userFlag = userFlag;
    }

    public String getUserFlag() 
    {
        return userFlag;
    }

    public void setIp(String ip) 
    {
        this.ip = ip;
    }

    public String getIp() 
    {
        return ip;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("mobile", getMobile())
            .append("account", getAccount())
            .append("password", getPassword())
            .append("userName", getUserName())
            .append("realName", getRealName())
            .append("chatNumber", getChatNumber())
            .append("idCard", getIdCard())
            .append("avatar", getAvatar())
            .append("pyqBgImg", getPyqBgImg())
            .append("chatBgImg", getChatBgImg())
            .append("signature", getSignature())
            .append("sex", getSex())
            .append("address", getAddress())
            .append("email", getEmail())
            .append("createTime", getCreateTime())
            .append("updateTime", getUpdateTime())
            .append("lastLoginTime", getLastLoginTime())
            .append("activeStatus", getActiveStatus())
            .append("delFlag", getDelFlag())
            .append("remark", getRemark())
            .append("userDeviceId", getUserDeviceId())
            .append("level", getLevel())
            .append("addMeId", getAddMeId())
            .append("addMe", getAddMe())
            .append("accountBalance", getAccountBalance())
            .append("accountFrozen", getAccountFrozen())
            .append("tradePwd", getTradePwd())
            .append("tixianFrozen", getTixianFrozen())
            .append("alipayAccount", getAlipayAccount())
            .append("alipayName", getAlipayName())
            .append("pinyinChar", getPinyinChar())
            .append("mibaoWenti", getMibaoWenti())
            .append("mibaoDaan", getMibaoDaan())
            .append("idCardZheng", getIdCardZheng())
            .append("idCardFan", getIdCardFan())
            .append("examineStatus", getExamineStatus())
            .append("integral", getIntegral())
            .append("invitationCode", getInvitationCode())
            .append("otherInvitationCode", getOtherInvitationCode())
            .append("notice", getNotice())
            .append("deviceStr", getDeviceStr())
            .append("idCardVideo", getIdCardVideo())
            .append("invitationCodeFlag", getInvitationCodeFlag())
            .append("userFlag", getUserFlag())
            .append("ip", getIp())
            .toString();
    }
}
